package com.turnengine.client.global.user.command;

import com.javabi.codebuilder.generated.IGeneratedCommand;
import com.javabi.common.locale.LanguageCountry;
import com.turnengine.client.global.command.IGlobalExecutableCommand;
import com.turnengine.client.global.user.enums.UserErrorCode;

/**
 * The I Signup User.
 * @see UserErrorCode#USER_NAME_EXISTS
 * @see UserErrorCode#USER_EMAIL_EXISTS
 */
public interface ISignupUser extends IGeneratedCommand, IGlobalExecutableCommand<Boolean>, Comparable<ISignupUser> {

	/**
	 * Returns the name.
	 * @return the name.
	 */
	String getName();

	/**
	 * Returns the password.
	 * @return the password.
	 */
	String getPassword();

	/**
	 * Returns the email.
	 * @return the email.
	 */
	String getEmail();

	/**
	 * Returns the address.
	 * @return the address.
	 */
	int getAddress();

	/**
	 * Returns the language.
	 * @return the language.
	 */
	LanguageCountry getLanguage();

	/**
	 * Sets the name.
	 * @param name the name to set.
	 */
	void setName(String name);

	/**
	 * Sets the password.
	 * @param password the password to set.
	 */
	void setPassword(String password);

	/**
	 * Sets the email.
	 * @param email the email to set.
	 */
	void setEmail(String email);

	/**
	 * Sets the address.
	 * @param address the address to set.
	 */
	void setAddress(int address);

	/**
	 * Sets the language.
	 * @param language the language to set.
	 */
	void setLanguage(LanguageCountry language);
}
